CC = arm-linux-g++
CFLAGS = -Wall -g -I./inc -std=c++11
LDFLAGS = -lm -L./lib -lfont -lpthread 

# 源文件和目标文件路径设置
SOURCES = $(wildcard src/*.cpp)
BUILD_DIR = build
# 创建与src目录结构对应的目标文件路径
OBJECTS = $(SOURCES:src/%.cpp=$(BUILD_DIR)/%.o)
TARGET = demo

# 默认目标
all: $(TARGET)

# 确保build目录存在
$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

# 链接目标文件生成可执行文件
$(TARGET): $(OBJECTS)
	$(CC) $(OBJECTS) -o $@ $(LDFLAGS)

# 编译源文件为目标文件，并存放在build目录
$(BUILD_DIR)/%.o: src/%.cpp | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

# 清理目标文件和可执行文件
clean:
	rm -rf $(BUILD_DIR) $(TARGET)

.PHONY: all clean
